package Presentacion;

import java.awt.EventQueue;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JButton;

import Dominio.AgenteCita;
import Dominio.AgenteUsuario;
import Dominio.Cita;
import Dominio.Usuario;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class concertarCita {

	private JFrame frmConcertarCita;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					concertarCita window = new concertarCita();
					window.frmConcertarCita.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public concertarCita() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmConcertarCita = new JFrame();
		frmConcertarCita.setTitle("Concertar Cita");
		frmConcertarCita.setBounds(100, 100, 450, 300);
		frmConcertarCita.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frmConcertarCita.getContentPane().setLayout(null);
		
		JLabel lblPedirCitaA = new JLabel("Pedir cita a:");
		lblPedirCitaA.setBounds(35, 44, 69, 14);
		frmConcertarCita.getContentPane().add(lblPedirCitaA);
		
		final JComboBox comboBox = new JComboBox();
		comboBox.setBounds(138, 41, 250, 20);
		frmConcertarCita.getContentPane().add(comboBox);
		
		JLabel lblEnLaCiudad = new JLabel("En la ciudad de:");
		lblEnLaCiudad.setBounds(10, 87, 82, 14);
		frmConcertarCita.getContentPane().add(lblEnLaCiudad);
		
		textField = new JTextField();
		textField.setBounds(138, 84, 250, 20);
		frmConcertarCita.getContentPane().add(textField);
		textField.setColumns(10);
		
		JLabel lblLigar = new JLabel("Lugar");
		lblLigar.setBounds(58, 133, 46, 14);
		frmConcertarCita.getContentPane().add(lblLigar);
		
		textField_1 = new JTextField();
		textField_1.setColumns(10);
		textField_1.setBounds(138, 130, 250, 20);
		frmConcertarCita.getContentPane().add(textField_1);
		
		JLabel lblFecha = new JLabel("Fecha:");
		lblFecha.setBounds(58, 175, 46, 14);
		frmConcertarCita.getContentPane().add(lblFecha);
		
		textField_2 = new JTextField();
		textField_2.setColumns(10);
		textField_2.setBounds(138, 172, 250, 20);
		frmConcertarCita.getContentPane().add(textField_2);
		
		AgenteUsuario agentuser= new AgenteUsuario();
		final ArrayList<Usuario> usuarioLista= agentuser.consultaUsuarios();
		
		for (int i=0;i<usuarioLista.size();i++){
			if(!usuarioLista.get(i).getDNI().equals(MenuPrincipal.DNI)){
				comboBox.addItem(usuarioLista.get(i).getNombre()+" "+usuarioLista.get(i).getApellido1()+" "+usuarioLista.get(i).getApellido2());
			}
		}
		
		JButton btnPedirCita = new JButton("Pedir Cita");
		btnPedirCita.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				AgenteCita agentcita= new AgenteCita();
				if(agentcita.isFechaValida(textField_2.getText())){
					AgenteUsuario agentuser= new AgenteUsuario();
					Usuario usuarioPide= agentuser.consultUsuario(MenuPrincipal.DNI);
					Usuario usuarioRecibe= null;
					String nombreCompleto[]= comboBox.getSelectedItem().toString().split(" ");
					
					for (int i=0; i<usuarioLista.size(); i++){
						if (usuarioLista.get(i).getNombre().equals(nombreCompleto[0])){
							if(usuarioLista.get(i).getApellido1().equals(nombreCompleto[1])){
								if(usuarioLista.get(i).getApellido2().equals(nombreCompleto[2])){
									usuarioRecibe= agentuser.consultUsuario(nombreCompleto[0], nombreCompleto[1], nombreCompleto[2]);
								}
							}
						}		
					}
					
					Cita cita= new Cita(usuarioPide, usuarioRecibe, textField.getText(), textField_1.getText(), textField_2.getText());
					
					boolean realizado= agentcita.insertarCita(cita);
					
					if (realizado)
		            	JOptionPane.showMessageDialog(null, "Cita Concertada");
		            else
		            	JOptionPane.showMessageDialog(null, "Error al Concertar Cita");
		            
					frmConcertarCita.setVisible(false);
				}else{
					JOptionPane.showMessageDialog(null, "Fecha Incorrecta");
				}
			}
		});
		btnPedirCita.setBounds(190, 228, 103, 23);
		frmConcertarCita.getContentPane().add(btnPedirCita);
		
		
	}
}
